package com.hxht.storage.server.service;

import java.util.List;

import com.hxht.storage.server.bean.CurrentRecordingBean;
import com.hxht.storage.server.bean.RecordMarkBean;
import com.hxht.storage.server.bean.RecordSearchBean;
import com.hxht.storage.server.bean.RecordSearchResultBean;

public interface RecordSearchService {
	
	/** 用户端使用，代表搜索的类型：全部录像 0xff */
	public static final int TYPE_ALL = 0xff;
	
	/** 用户端使用，代表搜索的类型：手工录像 0x10 */
	public static final int TYPE_MANUAL_RECORD = 0x10;
	
	/** 用户端使用，代表搜索的类型：命令触发 0x08 */
	public static final int TYPE_COMMAND_TRIGGER = 0x08;
	
	/** 用户端使用，代表搜索的类型：报警 0x04 */
	public static final int TYPE_ALARM = 0x04;
	
	/** 用户端使用，代表搜索的类型：移动侦测 0x02 */
	public static final int TYPE_MOTION_DETECT = 0x02;
	
	/** 用户端使用，代表搜索的类型：定时录像 0x01 */
	public static final int TYPE_PLAN_RECORD = 0x01;
	
	/** nvr FindCondition使用，代表搜索的类型：All 0xff */
	public static final int NVR_PLAN_TYPE_ALL = 0xff;
	
	/** nvr FindCondition使用，代表搜索的类型：计划录像 0 */
	public static final int NVR_PLAN_TYPE_PLAN_RECORD = 0;
	
	/** nvr FindCondition使用，代表搜索的类型：移动侦测 1 */
	public static final int NVR_PLAN_TYPE_MOTION_DETECT = 1;
	
	/** nvr FindCondition使用，代表搜索的类型：报警触发 2 */
	public static final int NVR_PLAN_TYPE_ALARM = 2;
	
	/** nvr 手工录像搜索时用，0 代表 手工录像 */
	public static final int NVR_MANUAL_TYPE_MANUAL = 0;
	
	/** nvr 手工录像搜索时用，5 代表 命令录像 */
	public static final int NVR_MANUAL_TYPE_COMMAND = 5;
	
	List<RecordSearchResultBean> searchRecordByDevice(RecordSearchBean searchBean);

	/** 根据mark,查找对应的 手工录像信息 */
	List<RecordSearchResultBean> searchManualRecordByMark(String mark);

	/** 添加录像时间标注 */
	boolean addRecordMark(RecordMarkBean recordMarkBean);
	
	/** 根据标注的 uuid，删除录像标注 */
	void delRecordMark(String uuid);

	/** 获得当前正在录像的通道信息 */
	List<CurrentRecordingBean> getCurrentRecording();

	/** 更新录像标注的 内容 */
	Boolean updateRecordMark(String uuid, String content);
}
